import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class WordCountJava {
    public static void main(String[] args) throws IOException {
        // 1、读取数据
        BufferedReader br = new BufferedReader(new FileReader("Scala/data/words.txt"));

        // 2、处理每一行数据
        String line;
        // 创建一个HashMap用于保存最后的结果
        HashMap<String, Integer> wcMap = new HashMap<>();

        while ((line = br.readLine()) != null) {
            // 3、对每行数据进行切分 得到一个String数组
            // java,spark,java,hadoop ==> String数组
            String[] wordsArr = line.split(",");

            // 4、遍历数组中的每个单词 以单词作为Key Value需要按照不同的规则进行处理
            for (String word : wordsArr) {
                // 如果该单词已经在HashMap中 则 Value + 1
                if (wcMap.containsKey(word)) {
                    int value = wcMap.get(word);
                    wcMap.put(word, ++value);
                } else {
                    wcMap.put(word, 1);
                }
                // 如果该单词不在HashMap中 则将单词作为Key， Value 置 1
            }
        }

        // 遍历HashMap 打印最后的结果
        for (Map.Entry<String, Integer> kv : wcMap.entrySet()) {
            System.out.println(kv.getKey() + "," + kv.getValue());
        }

    }
}
